/**
 * 防抖函数, 没有对this进行处理
 * @param func 需要进行防抖的函数
 * @param delay 函数防抖时间,单位为ms
 */
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export function debounce<T extends any[]>(func: (...args: T) => any, delay: number): (...args: T) => void {
    let timeoutId: ReturnType<typeof setTimeout>;
    return function (...args: T): void { // 使用 this: any 来避免类型错误
        // 清除之前的定时器
        clearTimeout(timeoutId);
        // 设置新的定时器
        timeoutId = setTimeout(() => {
            func(...args);
        }, delay);
    };
}


// eslint-disable-next-line @typescript-eslint/no-empty-function
export const emptyFunction = () => {
}